Termination Proof Script

Consider the TRS R consisting of the rewrite rules
1:    active(fib(N))  → mark(sel(N,fib1(s(0),s(0))))
2:    active(fib1(X,Y))  → mark(cons(X,fib1(Y,add(X,Y))))
3:    active(add(0,X))  → mark(X)
4:    active(add(s(X),Y))  → mark(s(add(X,Y)))
5:    active(sel(0,cons(X,XS)))  → mark(X)
6:    active(sel(s(N),cons(X,XS)))  → mark(sel(N,XS))
7:    active(fib(X))  → fib(active(X))
8:    active(sel(X1,X2))  → sel(active(X1),X2)
9:    active(sel(X1,X2))  → sel(X1,active(X2))
10:    active(fib1(X1,X2))  → fib1(active(X1),X2)
11:    active(fib1(X1,X2))  → fib1(X1,active(X2))
12:    active(s(X))  → s(active(X))
13:    active(cons(X1,X2))  → cons(active(X1),X2)
14:    active(add(X1,X2))  → add(active(X1),X2)
15:    active(add(X1,X2))  → add(X1,active(X2))
16:    fib(mark(X))  → mark(fib(X))
17:    sel(mark(X1),X2)  → mark(sel(X1,X2))
18:    sel(X1,mark(X2))  → mark(sel(X1,X2))
19:    fib1(mark(X1),X2)  → mark(fib1(X1,X2))
20:    fib1(X1,mark(X2))  → mark(fib1(X1,X2))
21:    s(mark(X))  → mark(s(X))
22:    cons(mark(X1),X2)  → mark(cons(X1,X2))
23:    add(mark(X1),X2)  → mark(add(X1,X2))
24:    add(X1,mark(X2))  → mark(add(X1,X2))
25:    proper(fib(X))  → fib(proper(X))
26:    proper(sel(X1,X2))  → sel(proper(X1),proper(X2))
27:    proper(fib1(X1,X2))  → fib1(proper(X1),proper(X2))
28:    proper(s(X))  → s(proper(X))
29:    proper(0)  → ok(0)
30:    proper(cons(X1,X2))  → cons(proper(X1),proper(X2))
31:    proper(add(X1,X2))  → add(proper(X1),proper(X2))
32:    fib(ok(X))  → ok(fib(X))
33:    sel(ok(X1),ok(X2))  → ok(sel(X1,X2))
34:    fib1(ok(X1),ok(X2))  → ok(fib1(X1,X2))
35:    s(ok(X))  → ok(s(X))
36:    cons(ok(X1),ok(X2))  → ok(cons(X1,X2))
37:    add(ok(X1),ok(X2))  → ok(add(X1,X2))
38:    top(mark(X))  → top(proper(X))
39:    top(ok(X))  → top(active(X))
There are 62 dependency pairs:
40:    ACTIVE(fib(N))  → SEL(N,fib1(s(0),s(0)))
41:    ACTIVE(fib(N))  → FIB1(s(0),s(0))
42:    ACTIVE(fib(N))  → S(0)
43:    ACTIVE(fib1(X,Y))  → CONS(X,fib1(Y,add(X,Y)))
44:    ACTIVE(fib1(X,Y))  → FIB1(Y,add(X,Y))
45:    ACTIVE(fib1(X,Y))  → ADD(X,Y)
46:    ACTIVE(add(s(X),Y))  → S(add(X,Y))
47:    ACTIVE(add(s(X),Y))  → ADD(X,Y)
48:    ACTIVE(sel(s(N),cons(X,XS)))  → SEL(N,XS)
49:    ACTIVE(fib(X))  → FIB(active(X))
50:    ACTIVE(fib(X))  → ACTIVE(X)
51:    ACTIVE(sel(X1,X2))  → SEL(active(X1),X2)
52:    ACTIVE(sel(X1,X2))  → ACTIVE(X1)
53:    ACTIVE(sel(X1,X2))  → SEL(X1,active(X2))
54:    ACTIVE(sel(X1,X2))  → ACTIVE(X2)
55:    ACTIVE(fib1(X1,X2))  → FIB1(active(X1),X2)
56:    ACTIVE(fib1(X1,X2))  → ACTIVE(X1)
57:    ACTIVE(fib1(X1,X2))  → FIB1(X1,active(X2))
58:    ACTIVE(fib1(X1,X2))  → ACTIVE(X2)
59:    ACTIVE(s(X))  → S(active(X))
60:    ACTIVE(s(X))  → ACTIVE(X)
61:    ACTIVE(cons(X1,X2))  → CONS(active(X1),X2)
62:    ACTIVE(cons(X1,X2))  → ACTIVE(X1)
63:    ACTIVE(add(X1,X2))  → ADD(active(X1),X2)
64:    ACTIVE(add(X1,X2))  → ACTIVE(X1)
65:    ACTIVE(add(X1,X2))  → ADD(X1,active(X2))
66:    ACTIVE(add(X1,X2))  → ACTIVE(X2)
67:    FIB(mark(X))  → FIB(X)
68:    SEL(mark(X1),X2)  → SEL(X1,X2)
69:    SEL(X1,mark(X2))  → SEL(X1,X2)
70:    FIB1(mark(X1),X2)  → FIB1(X1,X2)
71:    FIB1(X1,mark(X2))  → FIB1(X1,X2)
72:    S(mark(X))  → S(X)
73:    CONS(mark(X1),X2)  → CONS(X1,X2)
74:    ADD(mark(X1),X2)  → ADD(X1,X2)
75:    ADD(X1,mark(X2))  → ADD(X1,X2)
76:    PROPER(fib(X))  → FIB(proper(X))
77:    PROPER(fib(X))  → PROPER(X)
78:    PROPER(sel(X1,X2))  → SEL(proper(X1),proper(X2))
79:    PROPER(sel(X1,X2))  → PROPER(X1)
80:    PROPER(sel(X1,X2))  → PROPER(X2)
81:    PROPER(fib1(X1,X2))  → FIB1(proper(X1),proper(X2))
82:    PROPER(fib1(X1,X2))  → PROPER(X1)
83:    PROPER(fib1(X1,X2))  → PROPER(X2)
84:    PROPER(s(X))  → S(proper(X))
85:    PROPER(s(X))  → PROPER(X)
86:    PROPER(cons(X1,X2))  → CONS(proper(X1),proper(X2))
87:    PROPER(cons(X1,X2))  → PROPER(X1)
88:    PROPER(cons(X1,X2))  → PROPER(X2)
89:    PROPER(add(X1,X2))  → ADD(proper(X1),proper(X2))
90:    PROPER(add(X1,X2))  → PROPER(X1)
91:    PROPER(add(X1,X2))  → PROPER(X2)
92:    FIB(ok(X))  → FIB(X)
93:    SEL(ok(X1),ok(X2))  → SEL(X1,X2)
94:    FIB1(ok(X1),ok(X2))  → FIB1(X1,X2)
95:    S(ok(X))  → S(X)
96:    CONS(ok(X1),ok(X2))  → CONS(X1,X2)
97:    ADD(ok(X1),ok(X2))  → ADD(X1,X2)
98:    TOP(mark(X))  → TOP(proper(X))
99:    TOP(mark(X))  → PROPER(X)
100:    TOP(ok(X))  → TOP(active(X))
101:    TOP(ok(X))  → ACTIVE(X)
The approximated dependency graph contains 9 SCCs: {74,75,97}, {73,96}, {67,92}, {70,71,94}, {72,95}, {68,69,93}, {77,79,80,82,83,85,87,88,90,91}, {50,52,54,56,58,60,62,64,66} and {98,100}.
Tyrolean Termination Tool  (414.23 seconds)   ---  May 3, 2006